/**
 * Redux Hooks 配置文件
 * 提供类型安全的 Redux hooks
 * 封装了 useDispatch 和 useSelector，使其支持 TypeScript 类型推断
 */

// src/store/hooks.ts
import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';
import type { RootState, AppDispatch } from './index';

/**
 * 类型安全的 dispatch hook
 * 使用 TypeScript 类型推断确保 dispatch 动作类型正确
 * @returns 返回带有类型信息的 dispatch 函数
 */
export const useAppDispatch = () => useDispatch<AppDispatch>();

/**
 * 类型安全的 selector hook
 * 使用 TypeScript 类型推断确保选择器返回正确的状态类型
 * 可以在组件中使用此 hook 来获取 Redux store 中的状态
 */
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;